In order to use web content or web services on a wide range of target devices, for example personal computers, personal digital assistants, mobile phones, interactive televisions and the like, it is necessary to perform content specialization to match the form of content to the particular device on which it is to appear. As usage of the internet increases, a wider variety of user devices such as mobile telephones, personal computers, personal digital assistants (PDA's), and like devices need to be able to connect to the internet to download content. One significant problem is that different user devices have different input, output software, and network characteristics. For example different devices have different display characteristics. For example, a mobile telephone may have a display screen of dimensions of the order 2 to 9 cm, whereas a PDA device may have a display screen of the order 7×10 cm and other devices such as note book or lap top computers may have larger screens, of the order 22 to 34×22 to 34 cm. The display capabilities of different user devices vary drastically, in terms of picture resolution, color or monochrome capability and audio quality. Even amongst a set of different mobile phones having similar sized screens, capabilities of those phones can vary enormously.
It is currently known that there are two standards used by such devices to describe their capabilities to web servers. Firstly, the CC/PP protocol created by the W3C consortium, and secondly, the UAProf protocol created by the WAP forum. Capability information is used by web servers to perform content specialization, that is to select, adapt or generate suitable content for a target device. With the increasing variety of devices, content does not just refer to standard web pages, but media and program objects such as ring tones or screensavers.
Referring to FIG. 1 herein, there is illustrated schematically a known system for matching content with user devices. Typically, one or more user devices 100 download content over a communications network 101 from a content web server 102. The content web server 102 communicates over a communications network 103 with a device profile web server 104, for the purpose of obtaining a profile of a particular user device. Knowledge of the device profile allows the content web server to serve content to that device in a form suitable for display on that device.
The content web server uses a black box approach using a set of custom rules to make the selected content fit on the requesting user device. However, where the description of the user device obtained from the device manufacturer is inaccurate, the adapted content may not be correctly presentable on the target user device. This relies upon the device implementing the standards correctly, the manufacturer's description of the device being correct and the system used at the content web server correctly matching the content onto the device, based on the manufacturer's description. In many cases, the team of engineers who build the devices are different to the persons who write the descriptions, so there are at least three groups of persons involved and each group of persons has to perform their job correctly in order for the system to work. Often, the technical specifications generated by each of the groups of persons do not match with each other, which means the system as a whole does not function correctly with the result the content cannot be downloaded or if it can be downloaded, then it cannot be correctly displayed on the target user device.
Generally, adaptation of content is complicated and can only be done by a team of one or more programmers. The programmers have to write programs which examine the device description, and then adapt the content accordingly to match the device. This is not ideal, because one of the reasons which web technology has taken off is that persons without programming skills are able to adapt content and use editor software to create web content.
Referring to FIG. 2 herein there is illustrated schematically in further detail, operation of the prior art system of FIG. 1. Content is adapted to suit a particular user device as follows. User device 200 requests content from a content repository. The request for content includes a pointer to a device information stored on a device profile web server 201 maintained by a device manufacturer. On receiving the content request from the user device 200, content web server 202 requests a device profile from the device profile web server 201 over a communications network (for example the Internet). The device profile web server returns a user device profile to the content web server, and the content web server performs a custom adaptation on a requested item of content, using the device profile, to adapt that content for the particular user device which has requested the content.
It is therefore necessary for the content web server to adapt the layout of the page display, and the type of objects which are displayed to match the target user device.
This approach involves a number of different enterprises or commercial entities in co-operating in order to provide a workable system. For example, it involves a device manufacturer, and a content provider co-operating with each other to exchange technical information concerning the capabilities of a device. Because of the wide variety of user devices, telephone handset manufacturers have created a standard which describes the capabilities of user devices. However, the standard has encountered problems in its implementation. Typically, each individual model of device is provided with a device description. However, the device description does not always accurately represent the technical capabilities of the device.
Referring to FIG. 3 herein, there is illustrated schematically a previous approach of the applicants, described in more detail in published U.S. application No. 03-0167334, the contents of which are hereby incorporated by reference. In that approach, a system of classification of client devices 300 is used. Various client devices are classified according to their various technical attributes to provide a set of device capability class descriptions 301. A content provider computer operates a program 303 to map individual items of content 303 to the capability classes. In doing so, the program refers to a device profile web server 305 to download a device profile describing the technical capabilities of an individual device. The content server determines the most suitable variant of content using the capability class, and provides a map of content to the capability class of which the individual user device is a member. The capability class descriptions are descriptions of what the capabilities of a device need to be for it to display a certain type of content. For example, where there is an image of a certain size and of a certain color depth, the requirements of that image are presented to the server and the server determines whether a device is capable of displaying the content based upon the capability class description of that device.
There is a further component which maps all the different device capability classes onto the content. Since there are potentially hundreds of individual device types, if the persons providing content to a website have to create different content versions for each individual device, this will be a large task. However, if devices are categorized into a number of different classes, each having a class type capability, then content providers can design different content versions for a restricted number of device capability classes. For example, a content provider may create five different versions of content, suitable for presentation in five different device capability classes. Within those capability classes, multiple devices belong to each device capability class, so the content may be provided on a wide variety of devices, if those devices are grouped into classes according to their device capabilities. The content providers don't need to know what the capability of each individual device is, as long as they have the device capability class description. As new devices are developed, provided they fit in with a device capability class description, the content will be automatically displayable on those new devices.
The user device 300 makes a request to the web server 301. The web server requests a device profile, which is a description of the device's capabilities from the device profile web server 305. The content web server 301 inspects the capabilities of the device 300, compares them with the capability class descriptions and based on that, picks the most appropriate variation of the content 304, which is delivered to the user device 300.
There are two possibilities for error in assigning content to a terminal user device using the class capability system. Firstly, the device manufacturers may have made incorrect descriptions of their devices i.e. incorrect device profiles. Secondly, the content providers may have got their class capability descriptions wrong, i.e. incorrect descriptions of their content. However, it is in the interest of both the device manufacturer, and the content provider to give the end user the best possible rendering of content.
However, the above system still relies on the fact that the basic description of the device provided by the device manufacturer is correct, and does not overcome the problem of device manufacturers incorrectly describing the capabilities of their devices.
In general, if there is a problem, then it is common for the device manufacturers and the content providers to consider that the technical problem lies with the other party. The device manufacturers assume that the content providers have made a mistake in their device capability class description, and the content providers assume that the device manufacturers have made a mistake in their device profiles.
A further trend in Internet communications is the creation of the “semantic web.” Traditionally, data is stored on individual computer entities, in a form in which the data is “encapsulated” by an applications program. That is, the data is specific to an applications program, and is accessible only by opening an applications program of the same type, or of a different version, for example, an upgrade, of the same applications program. In general, if the data is attempted to be opened by another applications program, a data file will either not open, or if it does open, the data may be effectively unusable.
It is known in XML to store data in a form, which makes it easier for several different applications to access the same data. Typically, several applications programs may access an XML file, on a single computer entity. However, this does not make the data universally accessible to a plurality of computer entities operating a plurality of applications programs.